/**
 * @author ChaP
 * @date 2019/04/16
 * @describe:
 */
package CodingTest.AC20190416;

/**
 * 给定一个正整数 num，编写一个函数，如果 num 是一个完全平方数，则返回 True，否则返回 False。

 说明：不要使用任何内置的库函数，如  sqrt。

 示例 1：

 输入：16
 输出：True
 示例 2：

 输入：14
 输出：False
 */
public class isPerfectSquare {
    public boolean isPerfectSquare(int num){
        if(num == 0||num == 1) return true;
        for(int i = 1;i<=num/2;i++){
            if(i*i == num)
                return true;
        }
        return false;
    }
//    方法二：
    public boolean isPerfectSquare1(int num){
        if(num == 0||num == 1) return true;
        int start = 0;
        int end = num;
        while(start <= end){
            int mid = (start+end)/2;
            if(mid*mid == num){
                return true;
            }else if(mid *mid < num)
                start = mid +1;
            else end = mid -1;
        }
        return false;
    }

    public static void main(String[] args) {
        isPerfectSquare is = new isPerfectSquare();
        int num = 16;
        System.out.println(is.isPerfectSquare1(16));
    }
}
